初识爬虫的那天,我选择了Java ( ー̀◡ー́ )
Queue<String> urlQueue = new LinkedList<String>();
//添加要采集的URL
urlQueue.offer("https://ccm.net/download/?page=1");
urlQueue.offer("https://ccm.net/download/?page=2");
urlQueue.offer("https://ccm.net/download/?page=3");
boolean t = true;
while (t) {
//如果队列为空,循环结束
if( urlQueue.isEmpty() ){
t = false;
}else {
//取出每个URL
String url = urlQueue.poll();
//获取HTML
String getHtml = ...;
//判断是否成功请求到HTML
if (成功请求到HTML) {
//解析数据
...;
}else { //如果网页存在但没有请求到数据,重新添加到队列中
urlQueue.offer(url);
}
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
System.out.println(parseStringTime("2016-05-19 19:17",
"yyyy-MM-dd HH:mm","yyyy-MM-dd HH:mm:ss"));
System.out.println(parseStringTime("2018-06-19",
"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"));
}
/**
* 字符型时间格式标准化方法
* @param inputTime(输入的字符串时间),inputTimeFormat(输入的格式),outTimeFormat(输出的格式).
* @return 转化后的时间(字符串)
*/
public static String parseStringTime(String inputTime,String inputTimeFormat,
String outTimeFormat){
String outputDate = null;
try {
//日期格式化及解析时间
Date inputDate = new SimpleDateFormat(inputTimeFormat).parse(inputTime);
//转化成新的形式的字符串
outputDate = new SimpleDateFormat(outTimeFormat).format(inputDate);
} catch (ParseException e) {
e.printStackTrace();
}
return outputDate;
}
}
//将unix时间戳转化成指定形式的时间
public static String TimeStampToDate(String timestampString, String formats) {
Long timestamp = Long.parseLong(timestampString) * 1000;
String date = new SimpleDateFormat(formats,
Locale.CHINA).format(new Date(timestamp));
return date;
}
本文作者钱洋博士所著新书《网络数据采集技术:Java网络爬虫实战》现已上市。系统地介绍了网络爬虫的理论知识和基础工具,并且选取典型网站,采用案例讲解的方式介绍网络爬虫中涉及的问题,以增强大家的动手实践能力。
本书时候国内少见的Java爬虫宝典。与Python语言相比,使用Java语言进行网络数据采集,具有采集效率更高、框架性能更好、敏捷易用等优点,而且针对大型搜索引擎系统的数据采集工作更多使用Java语言,故本书值得大家学习。
█ 关 于 作 者
钱洋
合肥工业大学管理科学与工程系博士、CSDN博客专家。作为技术人员参与过多个横向、纵向学术课题,负责数据采集系统的设计与开发工作。在CSDN(博客名称:HFUT_qianyang)上撰写了多篇关于数据采集、自然语言处理、编程语言等领域的原创博客。
姜元春
合肥工业大学教授、博士生导师。长期从事电子商务、商务智能、数据采集与挖掘等方面的理论研究与教学工作。先后主持过国家自然科学基金优秀青年科学基金项目、国家自然科学基金重大研究计划培育项目、国家自然科学基金青年科学基金项目、教育部人文社科青年基金项目、阿里巴巴青年学者支持计划、CCF-腾讯犀牛鸟基金项目等课题的研究工作。
陈国青 / 清华大学教授、博士生导师
程学旗 / 中国科学院计算技术研究所研究员、博士生导师
卓训方 / 上海数据交易中心项目总监
刘业政 / 合肥工业大学教授博士生导师
这3 章重点介绍与网络爬虫开发相关的基础知识,其中包括网络爬虫的原理、Java 基础知识和HTTP 协议等内容。
这3 章分别从网页内容获取、网页内容解析和网络爬虫数据存储3 个方面介绍网络爬虫开发过程中所涉及的一系列技术。在这3 章中,涉及很多开源工具的使用,如Jsoup、HttpClient、HtmlCleaner、Fastjson、POI3 等。
本章利用具体的实战案例,讲解网络爬虫开发的流程。通过对本章的学习,读者可以轻松开发Java 网络爬虫。
针对一些复杂的页面,如动态加载的页面(执行JavaScript 脚本),本章介绍了一款实用的工具——Selenium WebDriver。
本章重点介绍了3 种比较流行的Java 网络爬虫开源框架,即Crawler4j、WebCollector 和WebMagic。读者可根据数据采集需求,自行开发支持多线程采集、断点采集、代理切换等功能的网络爬虫项目。
▶ 博文菌●互动时间 ◀
Java、Python、Js、C、PHP、Shell、Ruby等等语言都可以实现爬虫,你尝试过哪种语言呢?欢迎在留言区与大家分享!
热门推荐